#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<vector>

using namespace std;

long long f[100010][2];

long long maxScore(vector<int>& nums, int x) {
    memset(f, INT_MIN, sizeof f);
    int n = nums.size();
    f[0][nums[0] % 2] = nums[0];
    f[0][1 - nums[0] % 2] = nums[0] - x;
    long long res = nums[0];
    for (int i = 1; i < n; i++)
    {
        int r = nums[i] % 2;
        f[i][r] = max(f[i-1][r] + nums[i], f[i-1][1 - r] + nums[i] - x);
        f[i][1 - r] = f[i - 1][1 - r];
    }
    return max(f[n - 1][0], f[n - 1][1]);
}

//long long maxScore(vector<int>& nums, int x) {
//    vector<long long>f(2, INT_MIN);
//    int n = nums.size();
//    f[nums[0] % 2] = nums[0];
//    long long res = nums[0];
//    for (int i = 1; i < n; i++)
//    {
//        int r = nums[i] % 2;
//        long long cur = max(f[r] + nums[i], f[1 - r] - x + nums[i]);
//        res = max(res, cur);
//        f[r] = max(f[r], cur);
//    }
//    return res;
//}

int main()
{
    vector<int> num = { 8,50,65,85,8,73,55,50,29,95,5,68,52,79 };
    maxScore(num, 74);
}